<?php
/*
Auth:Sang
Desc:后台菜单模块模型
Date:2014-10-27
*/
namespace Mod;
use Lib\Model;
class Module extends Model{
	public function getAllModules($is_online=null){
	  	$where = "";
	  	if(isset($is_online)){
	  		$where.="online={$is_online}";
		}
		$list = $this->where($where)->order("module_sort asc,module_id asc")->select();
		if ($list) {
			return $list;
		}
		return array ();
    }

    public function getModuleById($module_id) {
		if (! $module_id || ! is_numeric ( $module_id )) {
			return false;
		}
		$list = $this->where("module_id={$module_id}")->fetch();
		if ($list) {
			return $list;
		}
		return array ();
	}

	public function getModuleForOptions() {
		$module_options_array = array ();
		$module_list = $this->getAllModules (1);
		
		foreach ( $module_list as $module ) {
			$module_options_array [$module ['module_id']] = $module ['module_name'];
		}
		
		return $module_options_array;
	}

	public function updateModuleInfo($module_id,$module_data) {
		if (! $module_data || ! is_array ( $module_data )) {
			return false;
		}
		return $this->where("module_id='{$module_id}'")->update($module_data);
	}

	public function addModule($module_data) {
		if (! $module_data || ! is_array ( $module_data )) {
			return false;
		}
		return $this->insert($module_data);
	}

	public function getModuleByName($module_name) {
		if (!$module_name) {
			return false;
		}

		$list = $this->where("module_name='{$module_name}'")->fetch();
		if ($list) {
			return $list;
		}
		return array ();
	}

	public function getModuleMenu($module_id) {
		if (! $module_id || ! is_numeric ( $module_id )) {
			return false;
		}
		$sql="select * from ".$this->getTableName() ." m,".model('#MenuUrl','adm_')->getTableName()." u where m.module_id = $module_id and m.module_id = u.module_id order by m.module_id,u.menu_id";
		$list = $this->db->query($sql)->fetch();
		if ($list) {
			return $list;
		}
		return array ();
	}

	public function delModule($module_id) {
		if (! $module_id || ! is_numeric ( $module_id )) {
			return false;
		}
		return $this->where("module_id='{$module_id}'")->delete();
	}
}